TOKEN COLOR SCOPE MEANINGS
==========================
Organized by name as they appear in FC Barcelona-color-theme.json


─────────────────────────────────────────────────────────────────
"Comment"
─────────────────────────────────────────────────────────────────
  comment
    Any comment in any language (single-line //, multi-line /* */, etc.)

  punctuation.definition.comment
    The opening/closing characters of a comment: //, /*, -->, #


─────────────────────────────────────────────────────────────────
"Variables"
─────────────────────────────────────────────────────────────────
  variable
    Any variable reference or declaration in any language

  string constant.other.placeholder
    Format string placeholders like %s, %d, {} inside strings


─────────────────────────────────────────────────────────────────
"Colors"
─────────────────────────────────────────────────────────────────
  constant.other.color
    Color value literals such as #ff0000 in CSS/SCSS


─────────────────────────────────────────────────────────────────
"Invalid"
─────────────────────────────────────────────────────────────────
  invalid
    Any syntactically invalid token

  invalid.illegal
    Tokens that are outright illegal in the language grammar
    (e.g., a character that is not allowed in that position)


─────────────────────────────────────────────────────────────────
"Keyword, Storage"
─────────────────────────────────────────────────────────────────
  keyword
    Reserved words: if, else, return, import, for, while, etc.

  storage.type
    Type declaration keywords: int, string, var, let, const, def, function

  storage.modifier
    Modifier keywords: static, public, private, async, readonly, abstract


─────────────────────────────────────────────────────────────────
"Operator, Misc"
─────────────────────────────────────────────────────────────────
  keyword.control
    Control flow keywords: if, else, while, for, return, break, continue

  constant.other.color
    Color constants (shared scope with the "Colors" entry)

  punctuation
    General punctuation: semicolons, commas, dots, brackets, braces

  meta.tag
    An entire HTML/XML tag element

  punctuation.definition.tag
    The < and > angle brackets of a tag

  punctuation.separator.inheritance.php
    The :: inheritance separator in PHP

  punctuation.definition.tag.html
    HTML-specific tag angle brackets

  punctuation.definition.tag.begin.html
    The opening < of an HTML tag

  punctuation.definition.tag.end.html
    The closing > of an HTML tag

  punctuation.section.embedded
    Delimiters for embedded code blocks: <?php ?>, <% %>

  keyword.other.template
    Template engine keywords (Jinja, Twig, Django, etc.)

  keyword.other.substitution
    Variable substitution markers inside templates


─────────────────────────────────────────────────────────────────
"Tag"
─────────────────────────────────────────────────────────────────
  entity.name.tag
    The name of an HTML/XML tag — the "div" in <div>

  meta.tag.sgml
    SGML-specific tags such as <!DOCTYPE>

  markup.deleted.git_gutter
    Lines marked as deleted in a Git diff gutter


─────────────────────────────────────────────────────────────────
"Function, Special Method"
─────────────────────────────────────────────────────────────────
  entity.name.function
    The name of a function being defined

  meta.function-call
    A function being called (the entire call expression)

  variable.function
    A variable that holds a function (callbacks, lambdas stored in vars)

  support.function
    Built-in or library functions provided by the language runtime
    (e.g., console.log, print, Math.floor)

  keyword.other.special-method
    Special method keywords such as Ruby def initialize


─────────────────────────────────────────────────────────────────
"Block Level Variables"
─────────────────────────────────────────────────────────────────
  meta.block variable.other
    Variables used inside a code block {} — distinguishes block-scoped
    vars from top-level declarations


─────────────────────────────────────────────────────────────────
"Other Variable, String Link"
─────────────────────────────────────────────────────────────────
  support.other.variable
    Variables provided by the language or framework
    (e.g., $_GET in PHP, arguments in JS)

  string.other.link
    A URL or hyperlink written as a string literal


─────────────────────────────────────────────────────────────────
"Number, Constant, Function Argument, Tag Attribute, Embedded"
─────────────────────────────────────────────────────────────────
  constant.numeric
    Number literals: 42, 3.14, 0xFF, 1_000

  constant.language
    Language-defined constants: true, false, null, undefined, None

  support.constant
    Constants from the standard library or framework (e.g., Math.PI, STDIN)

  constant.character
    Character literals such as 'a' in C or Java

  constant.escape
    Escape sequences inside strings: \n, \t, \\, A

  variable.parameter
    Function and method parameters in the function signature

  keyword.other.unit
    Unit suffixes on values: px, em, %, vh, rem in CSS

  keyword.other
    Any keyword that does not fit a more specific category


─────────────────────────────────────────────────────────────────
"String, Symbols, Inherited Class, Markup Heading"
─────────────────────────────────────────────────────────────────
  string
    Any string literal in any language

  constant.other.symbol
    Ruby symbols like :my_symbol

  constant.other.key
    Object or hash key literals

  entity.other.inherited-class
    The parent class name in "class Foo extends Bar"

  markup.heading
    Heading elements in markup (Markdown #, AsciiDoc, etc.)

  markup.inserted.git_gutter
    Lines marked as added/inserted in a Git diff gutter

  meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js
    Unquoted JavaScript object keys inside curly braces


─────────────────────────────────────────────────────────────────
"Class, Support"
─────────────────────────────────────────────────────────────────
  entity.name
    Any named entity: class, function, type, etc. (broad catch-all)

  support.type
    Types provided by the language or framework (e.g., HTMLElement, Promise)

  support.class
    Classes provided by the language or framework (e.g., Array, Date)

  support.other.namespace.use.php
    A namespace name in PHP use statement

  meta.use.php
    The entire use statement in PHP

  support.other.namespace.php
    A PHP namespace reference

  markup.changed.git_gutter
    Lines marked as modified in a Git diff gutter

  support.type.sys-types
    System-level types such as size_t, uint8_t in C/C++


─────────────────────────────────────────────────────────────────
"Entity Types"
─────────────────────────────────────────────────────────────────
  support.type
    Built-in or library-provided types — this entry overrides the color
    set in "Class, Support" above specifically for type names


─────────────────────────────────────────────────────────────────
"CSS Class and Support"
─────────────────────────────────────────────────────────────────
  source.css support.type.property-name
    CSS property names like color, display, margin in .css files

  source.sass support.type.property-name
    Same but inside .sass files

  source.scss support.type.property-name
    Same but inside .scss files

  source.less support.type.property-name
    Same but inside .less files

  source.stylus support.type.property-name
    Same but inside .styl files

  source.postcss support.type.property-name
    Same but inside PostCSS files


─────────────────────────────────────────────────────────────────
"Sub-methods"
─────────────────────────────────────────────────────────────────
  entity.name.module.js
    The name of a JavaScript module

  variable.import.parameter.js
    Variables named in an import statement

  variable.other.class.js
    A variable that refers to a class object in JavaScript


─────────────────────────────────────────────────────────────────
"Language methods"
─────────────────────────────────────────────────────────────────
  variable.language
    Special language-defined pseudo-variables: this, self, super, $this


─────────────────────────────────────────────────────────────────
"entity.name.method.js"
─────────────────────────────────────────────────────────────────
  entity.name.method.js
    The name portion of a JavaScript method definition


─────────────────────────────────────────────────────────────────
"meta.method.js"
─────────────────────────────────────────────────────────────────
  meta.class-method.js entity.name.function.js
    The function name inside a class method body

  variable.function.constructor
    The constructor keyword or function in a JS class


─────────────────────────────────────────────────────────────────
"Attributes"
─────────────────────────────────────────────────────────────────
  entity.other.attribute-name
    Any attribute name in HTML, XML, or JSX:
    class, id, href, onClick, data-value


─────────────────────────────────────────────────────────────────
"HTML Attributes"
─────────────────────────────────────────────────────────────────
  text.html.basic entity.other.attribute-name.html
    Attribute names in plain .html files

  text.html.basic entity.other.attribute-name
    Same, slightly broader match for plain HTML
    (overrides the generic purple from "Attributes" for plain HTML files)


─────────────────────────────────────────────────────────────────
"CSS Classes"
─────────────────────────────────────────────────────────────────
  entity.other.attribute-name.class
    The class name in a CSS selector: .my-class


─────────────────────────────────────────────────────────────────
"CSS ID's"
─────────────────────────────────────────────────────────────────
  source.sass keyword.control
    Control-flow keywords inside .sass files: @if, @each, @for, @while
    (Note: despite the name, this scope targets Sass keywords, not CSS IDs)


─────────────────────────────────────────────────────────────────
"Inserted"
─────────────────────────────────────────────────────────────────
  markup.inserted
    Text marked as inserted or added in a diff view


─────────────────────────────────────────────────────────────────
"Deleted"
─────────────────────────────────────────────────────────────────
  markup.deleted
    Text marked as deleted or removed in a diff view


─────────────────────────────────────────────────────────────────
"Changed"
─────────────────────────────────────────────────────────────────
  markup.changed
    Text marked as modified in a diff view


─────────────────────────────────────────────────────────────────
"Regular Expressions"
─────────────────────────────────────────────────────────────────
  string.regexp
    An entire regular expression literal: /foo|bar/gi


─────────────────────────────────────────────────────────────────
"Escape Characters"
─────────────────────────────────────────────────────────────────
  constant.character.escape
    Backslash escape sequences inside strings: \n, \t, , A


─────────────────────────────────────────────────────────────────
"URL"
─────────────────────────────────────────────────────────────────
  *url*
    Any scope whose name contains the word "url" (glob wildcard match)

  *link*
    Any scope whose name contains the word "link"

  *uri*
    Any scope whose name contains the word "uri"


─────────────────────────────────────────────────────────────────
"Decorators"
─────────────────────────────────────────────────────────────────
  tag.decorator.js entity.name.tag.js
    The decorator name itself: @Component, @Injectable

  tag.decorator.js punctuation.definition.tag.js
    The @ symbol that opens a decorator


─────────────────────────────────────────────────────────────────
"ES7 Bind Operator"
─────────────────────────────────────────────────────────────────
  source.js constant.other.object.key.js string.unquoted.label.js
    Unquoted label strings in the context of the JS :: bind operator
    (Stage 0 proposal that lets you bind a method as a shorthand)


─────────────────────────────────────────────────────────────────
"JSON Key - Level 0"
─────────────────────────────────────────────────────────────────
  source.json meta.structure.dictionary.json support.type.property-name.json
    Top-level keys in a JSON object (depth 0)


─────────────────────────────────────────────────────────────────
"JSON Key - Level 1"
─────────────────────────────────────────────────────────────────
  source.json meta.structure.dictionary.json
    meta.structure.dictionary.value.json meta.structure.dictionary.json
    support.type.property-name.json
    JSON keys nested 1 level deep inside a value


─────────────────────────────────────────────────────────────────
"JSON Key - Level 2"
─────────────────────────────────────────────────────────────────
  (same pattern, two value+dictionary pairs deep)
    JSON keys nested 2 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 3"
─────────────────────────────────────────────────────────────────
  (same pattern, three pairs deep)
    JSON keys nested 3 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 4"
─────────────────────────────────────────────────────────────────
  (same pattern, four pairs deep)
    JSON keys nested 4 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 5"
─────────────────────────────────────────────────────────────────
  (same pattern, five pairs deep)
    JSON keys nested 5 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 6"
─────────────────────────────────────────────────────────────────
  (same pattern, six pairs deep)
    JSON keys nested 6 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 7"
─────────────────────────────────────────────────────────────────
  (same pattern, seven pairs deep)
    JSON keys nested 7 levels deep


─────────────────────────────────────────────────────────────────
"JSON Key - Level 8"
─────────────────────────────────────────────────────────────────
  (same pattern, eight pairs deep)
    JSON keys nested 8 levels deep

  HOW JSON LEVELS WORK:
  Each level adds one more "meta.structure.dictionary.value.json
  meta.structure.dictionary.json" pair to the scope path. This is because
  TextMate scopes literally describe the parse tree — each nesting of a
  JSON value inside a dictionary adds one pair to the path. The selector
  gets longer the deeper the key is, and each level gets a distinct color
  so deeply nested JSON is easier to read at a glance.


─────────────────────────────────────────────────────────────────
"Markdown - Plain"
─────────────────────────────────────────────────────────────────
  text.html.markdown
    The root scope applied to any Markdown file

  punctuation.definition.list_item.markdown
    The -, *, or 1. markers that begin list items


─────────────────────────────────────────────────────────────────
"Markdown - Markup Raw Inline"
─────────────────────────────────────────────────────────────────
  text.html.markdown markup.inline.raw.markdown
    Content inside backtick spans: `inline code`


─────────────────────────────────────────────────────────────────
"Markdown - Markup Raw Inline Punctuation"
─────────────────────────────────────────────────────────────────
  text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown
    The backtick characters themselves that wrap inline code


─────────────────────────────────────────────────────────────────
"Markdown - Heading"
─────────────────────────────────────────────────────────────────
  markdown.heading
    A heading element in Markdown

  markup.heading | markup.heading entity.name
    The heading text itself (the | means either scope matches)

  markup.heading.markdown punctuation.definition.heading.markdown
    The # symbols before the heading text


─────────────────────────────────────────────────────────────────
"Markup - Italic"
─────────────────────────────────────────────────────────────────
  markup.italic
    Text wrapped in *single asterisks* or _underscores_


─────────────────────────────────────────────────────────────────
"Markup - Bold"
─────────────────────────────────────────────────────────────────
  markup.bold
    Text wrapped in **double asterisks**

  markup.bold string
    A string literal that appears inside bold text


─────────────────────────────────────────────────────────────────
"Markup - Bold-Italic"
─────────────────────────────────────────────────────────────────
  markup.bold markup.italic
    Bold-italic text where bold is the outer wrapper

  markup.italic markup.bold
    Bold-italic text where italic is the outer wrapper

  markup.quote markup.bold
    Bold text that appears inside a blockquote

  markup.bold markup.italic string
  markup.italic markup.bold string
  markup.quote markup.bold string
    The same three cases above but where a string scope is also present


─────────────────────────────────────────────────────────────────
"Markup - Underline"
─────────────────────────────────────────────────────────────────
  markup.underline
    Underlined text (native in AsciiDoc; not standard in Markdown)


─────────────────────────────────────────────────────────────────
"Markdown - Blockquote"
─────────────────────────────────────────────────────────────────
  markup.quote punctuation.definition.blockquote.markdown
    The > character at the start of a blockquote line


─────────────────────────────────────────────────────────────────
"Markup - Quote"
─────────────────────────────────────────────────────────────────
  markup.quote
    The entire content of a > blockquote line
    (styled italic only — no color override, inherits from context)


─────────────────────────────────────────────────────────────────
"Markdown - Link"
─────────────────────────────────────────────────────────────────
  string.other.link.title.markdown
    The visible label text in [label](url) — the part inside the brackets


─────────────────────────────────────────────────────────────────
"Markdown - Link Description"
─────────────────────────────────────────────────────────────────
  string.other.link.description.title.markdown
    The title string in a reference-style link definition:
    [label]: url "this part"


─────────────────────────────────────────────────────────────────
"Markdown - Link Anchor"
─────────────────────────────────────────────────────────────────
  constant.other.reference.link.markdown
    The [ref] identifier used in reference-style links: [text][ref]


─────────────────────────────────────────────────────────────────
"Markup - Raw Block"
─────────────────────────────────────────────────────────────────
  markup.raw.block
    A block-level raw or preformatted code section (e.g., indented code blocks)


─────────────────────────────────────────────────────────────────
"Markdown - Raw Block Fenced"
─────────────────────────────────────────────────────────────────
  markup.raw.block.fenced.markdown
    The entire fenced code block region (``` ``` ```)
    Color is near-transparent (#00000050) to visually de-emphasize the container


─────────────────────────────────────────────────────────────────
"Markdown - Fenced Bode Block"
─────────────────────────────────────────────────────────────────
  punctuation.definition.fenced.markdown
    The opening and closing ``` or ~~~ fence delimiter lines themselves
    Also near-transparent to visually recede into the background


─────────────────────────────────────────────────────────────────
"Markdown - Fenced Bode Block Variable"
─────────────────────────────────────────────────────────────────
  markup.raw.block.fenced.markdown
    The fenced block region — overrides the near-transparent color above
    to make the code content readable

  variable.language.fenced.markdown
    The language tag after the opening fence: the "js" in ```js

  punctuation.section.class.end
    The closing } brace of a CSS/SCSS class rule block


─────────────────────────────────────────────────────────────────
"Markdown - Fenced Language"
─────────────────────────────────────────────────────────────────
  variable.language.fenced.markdown
    The language identifier after the opening fence: python, js, bash, etc.
    This overrides the color set in the entry above specifically for the tag


─────────────────────────────────────────────────────────────────
"Markdown - Separator"
─────────────────────────────────────────────────────────────────
  meta.separator
    A horizontal rule (---, ***, ___) or other document separator element


─────────────────────────────────────────────────────────────────
"Markup - Table"
─────────────────────────────────────────────────────────────────
  markup.table
    The content of a Markdown table: pipes |, header row, and data cells


─────────────────────────────────────────────────────────────────
HOW TEXTMATE SCOPES WORK (general reference)
─────────────────────────────────────────────────────────────────
Scopes use dot-separated hierarchies. The leftmost segment is the broadest
category (comment, string, keyword, entity, markup, etc.) and each segment
to the right narrows it further. Rules earlier in the tokenColors array have
lower priority — later rules with more specific scopes override general ones.
